The present invention relates to a receiver for broadcast signals, e.g. DAB, FM, DVB, and digital or analog short-wave RF broadcast signals, e.g. DRM or AM signals, in particular to receivers for digitally modulated signals and/or multi-transmission system receivers for at least two different broadcast signals.
State of the art multi-transmission system receivers that can be switched between different RF broadcast signals usually comprise separate processing blocks each of which is directly related to a specific type of RF broadcast signal in-between the input stages of a RF receiver, like antenna, front-end block, A/D converter and IQ generator, and the output stage, like D/A converter. Such individual circuits respectively perform e.g. the digital frequency demodulation which is needed for the reception of a frequency modulated signal, the digital frequency adjustment of the receiver in case of reception of AM or short-wave broadcast signals and the digital frequency adjustment and digital gain control of the receiver in case of DAB reception. In these solutions, the AFC (Automatic Frequency Control) and the AGC (Automatic Gain Control) as well as the digital filtering of a complex baseband signal, the sampling rate decimation and the frequency demodulation are separate blocks which leads to high realization costs.
Therefore, it is the object underlying the present invention to provide a receiver for broadcast signals that has lower realization costs than comparable state of the art receivers.
According to the present invention this object is solved with a receiver according to independent claim 1. Preferred embodiments thereof are defined in dependent claims 2 to 19.
According to the present invention an efficient realization of a receiver uses a polyfunctional circuit that receives the complex baseband signal generated from a respective RF broadcast signal which can be switched into different modes dependent on the broadcast signals that should be receivable. In a first mode (mode A) the polyfunctional circuit performs the digital frequency demodulation which is needed for the reception of a frequency modulated (FM) signal. According to a preferred embodiment (mode A-1) additionally a digital neighbor channel suppression and sampling rate decimation is performed by the polyfunctional circuit. In a second mode (mode B) the polyfunctional circuit performs the digital frequency adjustment (AFC=automatic frequency control) of the receiver which can be used for the reception of digitally or analog modulated signals, like DAB, DVB, digital short-wave (DRM) or AM reception. In a third mode (mode C) the polyfunctional circuit performs the digital frequency adjustment and the digital gain control (AGC=automatic gain control) of the receiver which is needed in case of DRM, DAB or DVB reception. The polyfunctional circuit has at least the functionality to perform either mode C, or mode C and mode A and/or mode B, or mode A and mode B.
According to the present invention the digital AGC and the digital AFC are realized in one circuit so that the same hardware of the AFC can also be used for the AGC. Furtheron, the digital filtering of complex signals and a sampling rate decimation are included in the polyfunctional circuit to perform a linear phase neighbor channel suppression and noise shaping. Therefore, no additional adders or multipliers are needed for the digital filtering and sampling rate decimation. Since all functionalities needed according to the prior art are combined in one polyfunctional circuit that can be switched into different modes according to the present invention, hardware parts that have to be used for reception of all or several of the RF broadcast signals, i.e. that are not used in parallel, but only during reception of one kind of broadcast signal are shared so that basically the same elements do not have to be included twice within the receiver, but only once.
In a preferred embodiment the circuit combines all three modes for the reception of a digital signal like DAB, DRM or DVB and the reception of analog signals like FM or AM. Furtheron, this polyfunctional circuit can be realized with only three adders and without multipliers which is a quite big advantage in comparison with state of the art multi-transmission system receivers.
The circuit according to the present invention is based and works with the CORDIC-algorithm. The CORDIC-algorithm was published by Jack E. Volder, xe2x80x9cThe CORDIC Trigonometric Computing Techniquexe2x80x9d, Institute of Radio Engineers, IRE Transactions on Electronic Computers, Vol. EC-8, pp. 330-334, 1959. To get a better understanding of the functionality of the polyfunctional circuit according to the present invention, in the following a short overview of the CORDIC-algorithm is given.
The CORDIC-algorithm is an iterative algorithm to rotate a complex vector. The algorithm can be realized very simple in hardware, because only shift and add operations are needed.
The CORDIC-algorithm rotates a complex input vector                                                                         z                ⁡                                  (                  k                  )                                            =                                                x                  ⁡                                      (                    k                    )                                                  +                                  jy                  ⁡                                      (                    k                    )                                                                                                                          =                                                                    x                                          (                      0                      )                                                        ⁡                                      (                    k                    )                                                  +                                                      jy                                          (                      0                      )                                                        ⁡                                      (                    k                    )                                                                                                                          =                                                z                                      (                    0                    )                                                  ⁡                                  (                  k                  )                                                                                        (        1        )            
in a first iteration:
x(1)(k)="sgr"(0)(k)xc2x7y(0)(k)
y(1)(k)=xe2x88x92"sgr"(0)(k)xc2x7x(0)(k)xe2x80x83xe2x80x83(2)
with "sgr"(i)(k)=xc2x11: micro rotation direction.
Beginning from the second to the Nth iteration, another formula is used
x(i+1)(k)=x(i)(k)+"sgr"(i)(k)xc2x7xcex4(i)xc2x7y(i)(k)
y(i+1)(k)=y(i)(k)xe2x88x92"sgr"(i)(k)xc2x7xcex4(i)xc2x7x(i)(k)xe2x80x83xe2x80x83(3)
with xcex4(i)=21xe2x88x92i: step with of the ith iteration.
The factor xcex4(i)=21xe2x88x92i can be realized simply by a shift operation.
The CORDIC-algorithm output signal after the Nth iteration w(k)=z(N)(k) is described by the following formula:                                                                         w                ⁡                                  (                  k                  )                                            =                                                                    z                                          (                      N                      )                                                        ⁡                                      (                    k                    )                                                  =                                                                            z                                              (                        0                        )                                                              ⁡                                          (                      k                      )                                                        ·                                      ⅇ                                                                  -                        j                                            ⁢                                                                        ∑                                                      i                            =                            0                                                                                N                            -                            1                                                                          ⁢                                                                                                            σ                                                              (                                i                                )                                                                                      ⁡                                                          (                              k                              )                                                                                ·                                                      ϕ                            rot                                                          (                              i                              )                                                                                                                                                            ·                                                            ∏                                              i                        =                        1                                                                    N                        -                        1                                                              ⁢                                          xe2x80x83                                        ⁢                                                                  1                        ⁢                                                                              (                                                          δ                                                              (                                i                                )                                                                                      )                                                    2                                                                                                                                                                                            =                                                                    z                                          (                      0                      )                                                        ⁡                                      (                    k                    )                                                  ·                K                ·                                  ⅇ                                                            -                      j                                        ⁢                                                                  ∑                                                  i                          =                          0                                                                          N                          -                          1                                                                    ⁢                                                                                                    σ                                                          (                              i                              )                                                                                ⁡                                                      (                            k                            )                                                                          ·                                                  ϕ                          rot                                                      (                            i                            )                                                                                                                                                                                                      (        4        )            
By splitting this formula into amplitude and phase follows:                               "LeftBracketingBar"                      w            ⁡                          (              k              )                                "RightBracketingBar"                =                              "LeftBracketingBar"                                          z                                  (                  N                  )                                            ⁡                              (                k                )                                      "RightBracketingBar"                    =                                                    "LeftBracketingBar"                                                      z                                          (                      0                      )                                                        ⁡                                      (                    k                    )                                                  "RightBracketingBar"                            ·                                                ∏                                      i                    =                    1                                                        N                    -                    1                                                  ⁢                                  xe2x80x83                                ⁢                                                      1                    +                                                                  (                                                  δ                                                      (                            i                            )                                                                          )                                            2                                                                                            =                          K              ·                              "LeftBracketingBar"                                                      z                                          (                      0                      )                                                        ⁡                                      (                    k                    )                                                  "RightBracketingBar"                                                                        (        5        )            
with       ϕ    rot          (      i      )        =      {                                                                      π                2                                                                                        arctan                ⁡                                  (                                      δ                                          (                      i                      )                                                        )                                                                    ⁢                  xe2x80x83                ⁢        for        ⁢                  xe2x80x83                ⁢                                                            i                =                0                                                                                        i                 greater than                 0                                                        :      
micro rotation angle of the ith iteration step and xcfx86(z(0)(k)) angle of the input vector z(0)(k).
The rotating angles xcfx86rot(i) are constant and can therefore be written in a ROM.
The amplitude is amplified by a constant factor       K    =                  ∏                  i          =          1                          N          -          1                    ⁢              xe2x80x83            ⁢                        1          +                                    (                              δ                                  (                  i                  )                                            )                        2                                ,
which is independent on the rotation itself.
The CORDIC-algorithm can be switched between two modes: rotation mode and vector mode.
In rotation mode, the micro rotation direction "sgr"(i) is generated from the phase error xcfx86error(i)                                                         ϕ              error                              (                0                )                                      ⁡                          (              k              )                                =                      ϕ            ⁡                          (              k              )                                      ⁢                  
                ⁢                                            ϕ              error                              (                                  i                  +                  1                                )                                      ⁡                          (              k              )                                =                                    ϕ              ⁡                              (                k                )                                      +                                          ∑                                  l                  =                  0                                i                            ⁢                                                                    σ                                          (                      l                      )                                                        ⁡                                      (                    k                    )                                                  ·                                  ϕ                  rot                                      (                    l                    )                                                                                                          (        6        )            
by the following formula:
"sgr"(i)(k)=xe2x88x92sign(xcfx86error(i)(k))xe2x80x83xe2x80x83(7)
The following example describes the CORDIC-algorithm in rotation mode: Lets suppose for the example, the input vector is             z              (        0        )              ⁢          (      k      )        =      ⅇ          j      ⁢              xe2x80x83            ⁢              π        3            
and the rotation phase is       ϕ    ⁢          (      k      )        =                    2        ⁢                  xe2x80x83                ⁢        π            3        ≡    120  
degrees. The CORDIC-algorithm has N=7 iteration steps. The following table shows the phase error xcfx86error(i) after each iteration in degrees:
FIG. 12 shows the vector z(i) after each iteration. The input vector             z              (        0        )              ⁢          (      k      )        =      ⅇ          j      ⁢              xe2x80x83            ⁢              π        3            
is shown by a small circle. The large circle with the amplitude 1 is only for orientation purpose.
In rotation mode the algorithm rotates the input vector z(0)(k) by a phase value       ∑          i      =      0              N      -      1        ⁢                    σ                  (          i          )                    ⁢              (        k        )              ·                  ϕ        rot                  (          i          )                    .      
With increasing number of iterations N the factor xcfx86error(N)(k) can be neglected and therefore with                                           ϕ            error                          (              N              )                                ⁡                      (            k            )                          =                                            ϕ              ⁡                              (                k                )                                      +                                          ∑                                  i                  =                  0                                                  N                  -                  1                                            ⁢                                                                    σ                                          (                      i                      )                                                        ⁡                                      (                    k                    )                                                  ·                                  ϕ                  rot                                      (                    i                    )                                                                                ≈          0                                    (        8        )            
follows                               ϕ          ⁢                      xe2x80x83                    ⁢                      (            k            )                          ≈                              ∑                          i              =              0                                      N              -              1                                ⁢                                                    σ                                  (                  i                  )                                            ⁡                              (                k                )                                      ·                                          ϕ                rot                                  (                  i                  )                                            .                                                          (        9        )            
Together with equation (5)                               ϕ          ⁢                      xe2x80x83                    ⁢                      (                                          z                                  (                  N                  )                                            ⁡                              (                k                )                                      )                          =                              ϕ            ⁡                          (                                                z                                      (                    0                    )                                                  ⁡                                  (                  k                  )                                            )                                -                                    ∑                              i                =                0                                            N                -                1                                      ⁢                                                            σ                                      (                    i                    )                                                  ⁡                                  (                  k                  )                                            ·                              ϕ                rot                                  (                  i                  )                                                                                        (        10        )            
follows:
xcfx86(z(N)(k))=xcfx86(z(0)(k))+xcfx86(k)xe2x80x83xe2x80x83(11)
and finally with equation (4):
w(k)=z(N)(k)=z(0)(k)xc2x7Kxc2x7ejxcfx86(k)xe2x80x83xe2x80x83(12)
The vector w(k) is generated from the input vector z(k) by an amplification with a constant K and a phase rotation by the phase xcfx86(k).
In vector mode the angle of each input vector xcfx86(z(0)(k)) is calculated. Therefore the input vector z(0) is rotated to the x-axis and the micro rotation angles xcfx86rot(i) are added to xcfx86(z(0)). For the rotation of the input vector z(0) to the x-axis, the micro rotation direction "sgr"(i) is generated from the imaginary component y(i)(k) using the following formula:
"sgr"(i)=sign(y(i))=sign(imag(z(i)))xe2x80x83xe2x80x83(13)
The angle xcfx86sum(i)(k) of the vector z(i) is calculated using the following equation:
xcfx86sum(0)=0
                                          ϕ            sum                          (                              i                +                1                            )                                ⁡                      (            k            )                          =                              ∑                          i              =              0                        i                    ⁢                                                    σ                                  (                  i                  )                                            ⁡                              (                k                )                                      ·                          ϕ              rot                              (                1                )                                                                        (        14        )            
The following example describes the CORDIC algorithm in rotation mode: Lets suppose for an example, the input vector is again z(0)(k)=ejxcfx80/3 and the CORDIC-algorithm has N=7 iteration steps. The following table shows the phase sum xcfx86sum(i)(k) in degrees:
FIG. 13 shows the vector z(i) after each iteration. The input vector z(0)(k)=ejxcfx80/3 is shown by a small circle. The large circle with the amplitude l is only for orientation purpose.
With an increasing number of iterations N the phase                                           ϕ            sum                          (              N              )                                ⁡                      (            k            )                          =                              ∑                          i              =              0                                      N              -              1                                ⁢                                                    σ                                  (                  i                  )                                            ⁡                              (                k                )                                      ·                          ϕ              rot                              (                i                )                                                                        (        15        )            
of the output vector z(N) is getting neglectable:                                           ϕ            sum                          (              N              )                                ⁡                      (            k            )                          =                                            ∑                              i                =                0                                            N                -                1                                      ⁢                                                            σ                                      (                    i                    )                                                  ⁡                                  (                  k                  )                                            ·                              ϕ                rot                                  (                  i                  )                                                              =                                    ϕ              ⁡                              (                                                      z                                          (                      N                      )                                                        ⁡                                      (                    k                    )                                                  )                                      ≈            0                                              (        16        )            
Together with equation (5)                               ϕ          ⁡                      (                                          z                                  (                  N                  )                                            ⁡                              (                k                )                                      )                          =                                            ϕ              ⁡                              (                                                      z                                          (                      0                      )                                                        ⁡                                      (                    k                    )                                                  )                                      -                                          ∑                                  i                  =                  0                                                  N                  -                  1                                            ⁢                                                                    σ                                          (                      i                      )                                                        ⁡                                      (                    k                    )                                                  ·                                  ϕ                  rot                                      (                    i                    )                                                                                ≈          0                                    (        17        )            
follows:                               ϕ          ⁡                      (                          z              ⁡                              (                k                )                                      )                          =                              ϕ            ⁡                          (                                                z                                      (                    0                    )                                                  ⁡                                  (                  k                  )                                            )                                ≈                                    ∑                              i                =                0                                            N                -                1                                      ⁢                                                            σ                                      (                    i                    )                                                  ⁡                                  (                  k                  )                                            ·                              ϕ                rot                                  (                  i                  )                                                                                        (        18        )            
Furtheron, the digital AFC and the digital frequency demodulation are both state of the art. They are, for example, described in EP 0 486 095 B1 xe2x80x9cDigital Receiverxe2x80x9d. Also the digital filtering of real signals is known, e.g. from EP 0 7412 478 A2 xe2x80x9cCircuit for Performing Arithmetic Operations in a Demodulatorxe2x80x9d.